package cn.cloud9.api;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.Calendar;
import java.util.Date;

public class API04AboutDate {

    public static void main(String[] args) {

        Date date = new Date();
        long timestamp = date.getTime();
        System.out.println(timestamp);

        // 或者注入时间戳
        Date date1 = new Date(timestamp - 360000);

        // 现在这个API基本功能就是取时间戳
        date1.setTime(timestamp);
        long time = date1.getTime();

        // ==================================== 将date对象转换成字符格式 ====================================
        SimpleDateFormat sdf = new SimpleDateFormat();
        String format = sdf.format(date);
        System.out.println(format);

        sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        format = sdf.format(date);
        System.out.println(format);

        // ==================================== 将字符格式转换成date对象 ====================================
        try {
            Date parse = sdf.parse(format);
            System.out.println(parse);
        } catch (Exception exception) {
            // exception.printStackTrace();
            String message = exception.getMessage();
            System.out.println(message);
        }


        Calendar instance = Calendar.getInstance();
        int year = instance.get(Calendar.YEAR);
        int month = instance.get(Calendar.MONTH) + 1;
        int day = instance.get(Calendar.DATE);
        System.out.printf("%d-%d-%d\n", year, month, day);

        // 可以设定日期
        instance.set(2015,Calendar.UNDECIMBER, 12);

        // 声明指定的日期单元，写上需要追加的数量
        instance.add(Calendar.DATE, 24);
        // 只有add相加，没有相减操作 使用负数实现
        instance.add(Calendar.YEAR, -5);

        // 获取时间
        Date time1 = instance.getTime();
        // 根据date对象设置时间
        instance.setTime(time1);

        // 比较是否靠后
        instance.after(instance);
        // 比较是否靠前
        instance.before(instance);

        // 日期比较
        instance.compareTo( instance);

    }

    private static void constructor() {
    }
}
